home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / gnats301.lha / gnats-3.01 / Makefile.in < prev    next >
Makefile  |  1993-04-14  |  27KB  |  1,028 lines

  1. #
  2. # Makefile for directory with subdirs to build.
  3. #   Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation
  4. #
  5. # This file is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2 of the License, or
  8. # (at your option) any later version.
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program; if not, write to the Free Software
  15. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  16. #
  17.  
  18. srcdir = .
  19.  
  20. prefix = /usr/local
  21.  
  22. exec_prefix = $(prefix)
  23. bindir = $(exec_prefix)/bin
  24. libdir = $(exec_prefix)/lib
  25. tooldir = $(libdir)
  26.  
  27. program_transform_name =
  28.  
  29. datadir = $(prefix)/lib
  30. mandir = $(prefix)/man
  31. man1dir = $(mandir)/man1
  32. man2dir = $(mandir)/man2
  33. man3dir = $(mandir)/man3
  34. man4dir = $(mandir)/man4
  35. man5dir = $(mandir)/man5
  36. man6dir = $(mandir)/man6
  37. man7dir = $(mandir)/man7
  38. man8dir = $(mandir)/man8
  39. man9dir = $(mandir)/man9
  40. infodir = $(prefix)/info
  41. includedir = $(prefix)/include
  42. docdir = $(datadir)/doc
  43.  
  44. SHELL = /bin/sh
  45.  
  46. INSTALL = cp
  47. INSTALL_PROGRAM = $(INSTALL)
  48. INSTALL_DATA = $(INSTALL)
  49.  
  50. AS = as
  51. AR = ar
  52. AR_FLAGS = rc
  53. CC = cc
  54. CFLAGS = -g
  55. CXX = gcc
  56. CXXFLAGS = -g -O
  57. RANLIB = ranlib
  58. NM = nm
  59. GZIP = gzip
  60. COMPRESS = compress
  61.  
  62. # BISON: This line sed'ed to BISON = bison -y for FSF releases, don't remove.
  63. BISON = `if [ -f $${rootme}/byacc/byacc ] ; \
  64.         then echo $${rootme}/byacc/byacc ; \
  65.         else echo byacc ; \
  66.     fi`
  67.  
  68. LEX = `if [ -f $${rootme}/flex/flex ] ; \
  69.     then echo $${rootme}/flex/flex ; \
  70.     else echo flex ; fi`
  71.  
  72. MAKEINFO = `if [ -f $${rootme}/texinfo/makeinfo/makeinfo ] ; \
  73.     then echo $${rootme}/texinfo/makeinfo/makeinfo ; \
  74.     else echo makeinfo ; fi`
  75.  
  76. RUNTEST = `if [ -f $${rootme}/dejagnu/runtest ] ; \
  77.     then echo EXPECT=$${rootme}/expect/expect $${rootme}/dejagnu/runtest ; \
  78.     else echo runtest ; fi`
  79.  
  80.  
  81. # libraries that may need to be augmented on a system-by-system basis
  82. X11_LIB = -lX11
  83.  
  84. # compilers to use to create programs which must be run in the build
  85. # environment.
  86. CC_FOR_BUILD = $(CC)
  87. CXX_FOR_BUILD = $(CXX)
  88.  
  89. SUBDIRS = "this is set via configure, don't edit this"
  90. OTHERS = 
  91.  
  92. ALL = all.normal
  93. INSTALL_TARGET = install.all
  94.  
  95. CC_FOR_TARGET = ` \
  96.   if [ -f $${rootme}/gcc/Makefile ] ; then \
  97.     echo $${rootme}/gcc/xgcc -B$${rootme}/gcc/; \
  98.   else \
  99.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  100.       echo $(CC); \
  101.     else \
  102.       t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
  103.     fi; \
  104.   fi`
  105.  
  106.  
  107. CXX_FOR_TARGET = ` \
  108.   if [ -f $${rootme}/gcc/Makefile ] ; then \
  109.     echo $${rootme}/gcc/xgcc -B$${rootme}/gcc/; \
  110.   else \
  111.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  112.       echo $(CXX); \
  113.     else \
  114.       t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
  115.     fi; \
  116.   fi`
  117.  
  118. AS_FOR_TARGET = ` \
  119.   if [ -f $${rootme}/gas/Makefile ] ; then \
  120.     echo $${rootme}/gas/as.new ; \
  121.   else \
  122.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  123.       echo $(AS); \
  124.     else \
  125.        t='$(program_transform_name)'; echo as | sed -e '' $$t ; \
  126.     fi; \
  127.   fi`
  128.  
  129. AR_FOR_TARGET = ` \
  130.   if [ -f $${rootme}/binutils/Makefile ] ; then \
  131.     echo $${rootme}/binutils/ar ; \
  132.   else \
  133.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  134.       echo $(AR); \
  135.     else \
  136.        t='$(program_transform_name)'; echo ar | sed -e '' $$t ; \
  137.     fi; \
  138.   fi`
  139.  
  140. RANLIB_FOR_TARGET = ` \
  141.   if [ -f $${rootme}/binutils/Makefile ] ; then \
  142.     echo $${rootme}/binutils/ranlib ; \
  143.   else \
  144.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  145.       echo $(RANLIB); \
  146.     else \
  147.        t='$(program_transform_name)'; echo ranlib | sed -e '' $$t ; \
  148.     fi; \
  149.   fi`
  150.  
  151. NM_FOR_TARGET = ` \
  152.   if [ -f $${rootme}/binutils/Makefile ] ; then \
  153.     echo $${rootme}/binutils/nm ; \
  154.   else \
  155.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  156.       echo $(NM); \
  157.     else \
  158.        t='$(program_transform_name)'; echo nm | sed -e '' $$t ; \
  159.     fi; \
  160.   fi`
  161.  
  162. # FIXME: This is badly named.
  163. XTRAFLAGS = ` \
  164.   if [ -f $${rootme}/gcc/Makefile ] ; then \
  165.     if [ -f $${rootme}/newlib/Makefile ] ; then \
  166.       echo -I$${rootme}/newlib/targ-include -I$${srcroot}/newlib/libc/include -I$${rootme}/gcc/include -nostdinc ; \
  167.     else \
  168.       echo -I$${rootme}/gcc/include ; \
  169.     fi ; \
  170.   else \
  171.      echo ; \
  172.   fi`
  173.  
  174. GNATS = all-gnats
  175.  
  176. #### host and target specific makefile fragments come in here.
  177. ###
  178.  
  179. # Flags to pass down to all sub-makes.
  180. # Please keep these in alphabetical order.
  181. BASE_FLAGS_TO_PASS = \
  182.     "AR_FLAGS=$(AR_FLAGS)" \
  183.     "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  184.     "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  185.     "BISON=$(BISON)" \
  186.     "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
  187.     "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
  188.     "CFLAGS=$(CFLAGS)" \
  189.     "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
  190.     "CXXFLAGS=$(CXXFLAGS)" \
  191.     "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
  192.     'GCC_FOR_TARGET=$$(CC_FOR_TARGET)' \
  193.     "INSTALL=$(INSTALL)" \
  194.     "INSTALL_DATA=$(INSTALL_DATA)" \
  195.     "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
  196.     "LDFLAGS=$(LDFLAGS)" \
  197.     "LEX=$(LEX)" \
  198.     "LOADLIBES=$(LOADLIBES)" \
  199.     "MAKEINFO=$(MAKEINFO)" \
  200.     "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
  201.     "GNATS=$(GNATS)" \
  202.     "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
  203.     "RUNTEST=$(RUNTEST)" \
  204.     "XTRAFLAGS_FOR_TARGET=$(XTRAFLAGS)" \
  205.     "exec_prefix=$(exec_prefix)" \
  206.     "prefix=$(prefix)" \
  207.     "tooldir=$(tooldir)" 
  208.  
  209. # Flags to pass down to most sub-makes, in which we're building with
  210. # the host environment.
  211. # If any variables are added here, they must be added to do-*, below.
  212. EXTRA_HOST_FLAGS = \
  213.     'AR=$(AR)' \
  214.     'AS=$(AS)' \
  215.     'CC=$(CC)' \
  216.     'CXX=$(CXX)' \
  217.     'NM=$(NM)' \
  218.     'RANLIB=$(RANLIB)' \
  219.     'XTRAFLAGS='
  220.  
  221. FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  222.  
  223. # Flags that are concerned with the location of the X11 include files
  224. # and library files
  225. X11_FLAGS_TO_PASS = \
  226.     "X11_INCLUDE_FLAGS=$(X11_INCLUDE_FLAGS)" \
  227.     "X11_LIB_FLAGS=$(X11_LIB_FLAGS)" \
  228.     "X11_LIB=$(X11_LIB)"
  229.  
  230. # Flags to pass down to makes which are built with the target environment.
  231. # The double $ decreases the length of the command line; the variables
  232. # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.
  233. # If any variables are added here, they must be added to do-*, below.
  234. EXTRA_TARGET_FLAGS = \
  235.     'AR=$$(AR_FOR_TARGET)' \
  236.     'AS=$$(AS_FOR_TARGET)' \
  237.     'CC=$$(CC_FOR_TARGET)' \
  238.     'CXX=$$(CXX_FOR_TARGET)' \
  239.     'NM=$$(NM_FOR_TARGET)' \
  240.     'RANLIB=$$(RANLIB_FOR_TARGET)' \
  241.     'XTRAFLAGS=$$(XTRAFLAGS_FOR_TARGET)'
  242.  
  243. TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
  244.  
  245. # Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
  246. # unfortunately needs the native compiler and the target ar and
  247. # ranlib.
  248. # If any variables are added here, they must be added to do-*, below.
  249. EXTRA_GCC_FLAGS = \
  250.     'AR=$$(AR_FOR_TARGET)' \
  251.     'AS=$(AS)' \
  252.     'CC=$(CC)' \
  253.     'CXX=$(CXX)' \
  254.     'NM=$(NM)' \
  255.     'RANLIB=$$(RANLIB_FOR_TARGET)' \
  256.     'XTRAFLAGS='
  257.  
  258. GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
  259.  
  260. # This is a list of the targets for all of the modules which are compiled
  261. # using $(FLAGS_TO_PASS).
  262. ALL_MODULES = \
  263.     all-autoconf \
  264.     all-bfd \
  265.     all-binutils \
  266.     all-byacc \
  267.     all-cvs \
  268.     all-dejagnu \
  269.     all-diff \
  270.     all-etc \
  271.     all-fileutils \
  272.     all-find \
  273.     all-flex \
  274.     all-gas \
  275.     all-gawk \
  276.     all-gdb \
  277.     all-gprof \
  278.     all-grep \
  279.     all-gzip \
  280.     all-hello \
  281.     all-indent \
  282.     all-ispell \
  283.     all-ld \
  284.     all-libiberty \
  285.     all-m4 \
  286.     all-make \
  287.     all-mmalloc \
  288.     all-opcodes \
  289.     all-patch \
  290.     all-gnats \
  291.     all-rcs \
  292.     all-readline \
  293.     all-recode \
  294.     all-sed \
  295.     all-send-pr \
  296.     all-shellutils \
  297.     all-sim \
  298.     all-tar \
  299.     all-tcl \
  300.     all-texinfo \
  301.     all-textutils \
  302.     all-tgas \
  303.     all-time \
  304.     all-uudecode \
  305.     all-wdiff
  306.  
  307. # This is a list of the check targets for all of the modules which are
  308. # compiled using $(FLAGS_TO_PASS).
  309. CHECK_MODULES = \
  310.     check-autoconf \
  311.     check-bfd \
  312.     check-binutils \
  313.     check-byacc \
  314.     check-cvs \
  315.     check-dejagnu \
  316.     check-diff \
  317.     check-etc \
  318.     check-fileutils \
  319.     check-find \
  320.     check-flex \
  321.     check-gas \
  322.     check-gawk \
  323.     check-gdb \
  324.     check-gprof \
  325.     check-grep \
  326.     check-gzip \
  327.     check-hello \
  328.     check-indent \
  329.     check-ispell \
  330.     check-ld \
  331.     check-libiberty \
  332.     check-m4 \
  333.     check-make \
  334.     check-mmcheckoc \
  335.     check-opcodes \
  336.     check-patch \
  337.     check-gnats \
  338.     check-rcs \
  339.     check-readline \
  340.     check-recode \
  341.     check-sed \
  342.     check-send-pr \
  343.     check-shellutils \
  344.     check-sim \
  345.     check-tar \
  346.     check-tcl \
  347.     check-texinfo \
  348.     check-textutils \
  349.     check-tgas \
  350.     check-time \
  351.     check-uudecode \
  352.     check-wdiff
  353.  
  354. # This is a list of the install targets for all of the modules which are
  355. # compiled using $(FLAGS_TO_PASS).
  356. INSTALL_MODULES = \
  357.     install-autoconf \
  358.     install-bfd \
  359.     install-binutils \
  360.     install-byacc \
  361.     install-cvs \
  362.     install-dejagnu \
  363.     install-diff \
  364.     install-etc \
  365.     install-fileutils \
  366.     install-find \
  367.     install-flex \
  368.     install-gas \
  369.     install-gawk \
  370.     install-gdb \
  371.     install-glob \
  372.     install-gprof \
  373.     install-grep \
  374.     install-gzip \
  375.     install-hello \
  376.     install-indent \
  377.     install-ispell \
  378.     install-ld \
  379.     install-libiberty \
  380.     install-m4 \
  381.     install-make \
  382.     install-mmalloc \
  383.     install-opcodes \
  384.     install-patch \
  385.     install-gnats \
  386.     install-rcs \
  387.     install-readline \
  388.     install-recode \
  389.     install-sed \
  390.     install-send-pr \
  391.     install-shellutils \
  392.     install-sim \
  393.     install-tar \
  394.     install-tcl \
  395.     install-texinfo \
  396.     install-textutils \
  397.     install-tgas \
  398.     install-time \
  399.     install-uudecode \
  400.     install-wdiff
  401.  
  402. # This is a list of the targets for all of the modules which are compiled
  403. # using $(X11_FLAGS_TO_PASS).
  404. ALL_X11_MODULES = \
  405.     all-emacs \
  406.     all-expect \
  407.     all-tclX \
  408.     all-tk
  409.  
  410. # This is a list of the check targets for all of the modules which are
  411. # compiled using $(X11_FLAGS_TO_PASS).
  412. CHECK_X11_MODULES = \
  413.     check-emacs \
  414.     check-expect \
  415.     check-tclX \
  416.     check-tk
  417.  
  418. # This is a list of the install targets for all the modules which are
  419. # compiled using $(X11_FLAGS_TO_PASS).
  420. INSTALL_X11_MODULES = \
  421.     install-emacs \
  422.     install-expect \
  423.     install-tclX \
  424.     install-tk
  425.  
  426. # This is a list of the targets for all of the modules which are compiled
  427. # using $(TARGET_FLAGS_TO_PASS).
  428. ALL_TARGET_MODULES = \
  429.     all-libg++ \
  430.     all-newlib \
  431.     all-xiberty
  432.  
  433. # This is a list of the check targets for all of the modules which are
  434. # compiled using $(TARGET_FLAGS_TO_PASS).
  435. CHECK_TARGET_MODULES = \
  436.     check-libg++ \
  437.     check-newlib \
  438.     check-xiberty
  439.  
  440. # This is a list of the install targets for all of the modules which are
  441. # compiled using $(TARGET_FLAGS_TO_PASS).
  442. INSTALL_TARGET_MODULES = \
  443.     install-libg++ \
  444.     install-newlib \
  445.     install-xiberty
  446.  
  447. # This is a shell case of all modules which are compiled using
  448. # $(TARGET_FLAGS_TO_PASS), used in the do-X rule.
  449. TARGET_LIBS = libg++ | newlib | xiberty
  450.  
  451. # The first rule in the file had better be this one.  Don't put any above it.
  452. all: $(ALL)
  453. .PHONY: all
  454.  
  455. # The target built for a native build.
  456. .PHONY: all.normal
  457. all.normal: \
  458.     $(ALL_MODULES) \
  459.     $(ALL_TARGET_MODULES) \
  460.     $(ALL_X11_MODULES) \
  461.     all-gcc
  462.  
  463. # The target built for a cross build.
  464. .PHONY: all.cross
  465. all.cross: \
  466.     all-bfd \
  467.     all-binutils \
  468.     all-byacc \
  469.     all-dejagnu \
  470.     all-flex \
  471.     all-gas \
  472.     all-gcc \
  473.     all-gdb \
  474.     all-ld \
  475.     all-libiberty \
  476.     all-mmalloc \
  477.     all-opcodes \
  478.     all-readline \
  479.     all-sim \
  480.     $(ALL_TARGET_MODULES)
  481.  
  482. # Do a target for all the subdirectories.  A ``make do-X'' will do a
  483. # ``make X'' in all subdirectories (because, in general, there is a
  484. # dependency (below) of X upon do-X, a ``make X'' will also do this,
  485. # but it may do additional work as well).
  486. # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
  487. # because it is so large that it can easily overflow the command line
  488. # length limit on some systems.
  489. DO_X = \
  490.     do-check \
  491.     do-clean \
  492.     do-distclean \
  493.     do-dvi \
  494.     do-info \
  495.     do-install-info \
  496.     do-installcheck \
  497.     do-mostlyclean \
  498.     do-realclean
  499. .PHONY: $(DO_X)
  500. $(DO_X):
  501.     @target=`echo $@ | sed -e 's/^do-//'`; \
  502.     rootme=`pwd`; export rootme; \
  503.     srcroot=`cd $(srcdir); pwd`; export srcroot; \
  504.     for i in $(SUBDIRS); do \
  505.       if [ -f ./$$i/Makefile ]; then \
  506.         case $$i in \
  507.         $(TARGET_LIBS) ) \
  508.           for flag in $(EXTRA_TARGET_FLAGS); do \
  509.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  510.           done; \
  511.           ;; \
  512.         gcc) \
  513.           for flag in $(EXTRA_GCC_FLAGS); do \
  514.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  515.           done; \
  516.           ;; \
  517.         *) \
  518.           for flag in $(EXTRA_HOST_FLAGS); do \
  519.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  520.           done; \
  521.           ;; \
  522.         esac ; \
  523.         export AR AS CC CXX NM RANLIB XTRAFLAGS; \
  524.         if (cd ./$$i; \
  525.             $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  526.             "CC=$${CC}" "CXX=$${CXX}" "NM=$${NM}" \
  527.             "RANLIB=$${RANLIB}" "XTRAFLAGS=$${XTRAFLAGS}" \
  528.             $${target}); \
  529.         then true; else exit 1; fi; \
  530.       else true; fi; \
  531.     done
  532.  
  533. # Here are the targets which correspond to the do-X targets.
  534.  
  535. .PHONY: info check installcheck dvi install-info
  536. .PHONY: clean distclean mostlyclean realclean local-clean local-distclean
  537. info: do-info
  538. check: do-check
  539. installcheck: do-installcheck
  540. dvi: do-dvi
  541.  
  542. install-info: install-info-dirs do-install-info dir.info
  543.     if [ -f dir.info ] ; then \
  544.       $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
  545.     else true ; fi
  546.  
  547. do-install-info: install-info-dirs
  548.  
  549. local-clean:
  550.     -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E
  551.  
  552. local-distclean:
  553.     -rm -f Makefile config.status
  554.  
  555. clean: do-clean local-clean
  556. mostlyclean: do-mostlyclean local-clean
  557. distclean: do-distclean local-clean local-distclean
  558. realclean: do-realclean local-clean local-distclean
  559.  
  560. # Installation targets.
  561.  
  562. .PHONY: install uninstall
  563. install: $(INSTALL_TARGET) 
  564.  
  565. uninstall:
  566.     @echo "the uninstall target is not supported in this tree"
  567.  
  568. .PHONY: install.all
  569. install.all: install-no-fixedincludes
  570.     @if [ -f ./gcc/Makefile ] ; then \
  571.         rootme=`pwd` ; export rootme ; \
  572.         (cd ./gcc; \
  573.         $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
  574.     else \
  575.         true ; \
  576.     fi
  577.  
  578. # install-no-fixedincludes is used because Cygnus can not distributed
  579. # the fixed header files.
  580. .PHONY: install-no-fixedincludes
  581. install-no-fixedincludes: \
  582.     install-dirs \
  583.     gcc-no-fixedincludes \
  584.     $(INSTALL_MODULES) \
  585.     $(INSTALL_TARGET_MODULES) \
  586.     $(INSTALL_X11_MODULES)
  587.  
  588. # Install the gcc headers files, but not the fixed include files,
  589. # which Cygnus is not allowed to distribute.  This rule is very
  590. # dependent on the workings of the gcc Makefile.in.
  591. .PHONY: gcc-no-fixedincludes
  592. gcc-no-fixedincludes:
  593.     @if [ -f ./gcc/Makefile ]; then \
  594.       rm -rf gcc/tmp-include; \
  595.       mv gcc/include gcc/tmp-include 2>/dev/null; \
  596.       mkdir gcc/include; \
  597.       touch gcc/stmp-fixincludes; \
  598.       rm -f gcc/stmp-headers; \
  599.       rootme=`pwd`; export rootme; \
  600.       srcroot=`cd $(srcdir); pwd` ; export srcroot; \
  601.       (cd ./gcc; \
  602.        $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  603.       rm -rf gcc/include; \
  604.       mv gcc/tmp-include gcc/include 2>/dev/null; \
  605.     else true; fi
  606.  
  607. .PHONY: install.cross
  608. install.cross: \
  609.     install-dirs \
  610.         install-binutils \
  611.     install-byacc \
  612.     install-dejagnu \
  613.     install-etc \
  614.     install-flex \
  615.     install-gas \
  616.     install-gcc \
  617.     install-gdb \
  618.         install-glob \
  619.         install-ld \
  620.     install-libiberty \
  621.     install-mmalloc \
  622.     install-opcodes \
  623.     install-readline \
  624.     $(INSTALL_TARGET_MODULES)
  625.  
  626. # This rule is used to build the modules which use FLAGS_TO_PASS.  To
  627. # build a target all-X means to cd to X and make all.
  628. # all-glob is handled specially because it doesn't actually build.
  629. .PHONY: $(ALL_MODULES) all-glob
  630. $(ALL_MODULES) all-glob:
  631.     @dir=`echo $@ | sed -e 's/all-//'`; \
  632.     if [ -f ./$${dir}/Makefile ] ; then \
  633.       rootme=`pwd`; export rootme; \
  634.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  635.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
  636.     else \
  637.       true; \
  638.     fi
  639.  
  640. # This rule is used to check the modules which use FLAGS_TO_PASS.  To
  641. # build a target check-X means to cd to X and make all.
  642. .PHONY: $(CHECK_MODULES) 
  643. $(CHECK_MODULES):
  644.     @dir=`echo $@ | sed -e 's/check-//'`; \
  645.     if [ -f ./$${dir}/Makefile ] ; then \
  646.       rootme=`pwd`; export rootme; \
  647.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  648.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
  649.     else \
  650.       true; \
  651.     fi
  652.  
  653. # This rule is used to install the modules which use FLAGS_TO_PASS.
  654. # To build a target install-X means to cd to X and make install.
  655. .PHONY: $(INSTALL_MODULES)
  656. $(INSTALL_MODULES): install-dirs
  657.     @dir=`echo $@ | sed -e 's/install-//'`; \
  658.     if [ -f ./$${dir}/Makefile ] ; then \
  659.       rootme=`pwd`; export rootme; \
  660.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  661.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
  662.     else \
  663.       true; \
  664.     fi
  665.  
  666. # This rule is used to build the modules which use TARGET_FLAGS_TO_PASS.
  667. # To build a target all-X means to cd to X and make all.
  668. .PHONY: $(ALL_TARGET_MODULES)
  669. $(ALL_TARGET_MODULES):
  670.     @dir=`echo $@ | sed -e 's/all-//'`; \
  671.     if [ -f ./$${dir}/Makefile ] ; then \
  672.       rootme=`pwd`; export rootme; \
  673.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  674.       (cd $${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
  675.     else \
  676.       true; \
  677.     fi
  678.  
  679. # This rule is used to check the modules which use TARGET_FLAGS_TO_PASS.
  680. # To build a target install-X means to cd to X and make install.
  681. .PHONY: $(CHECK_TARGET_MODULES)
  682. $(CHECK_TARGET_MODULES):
  683.     @dir=`echo $@ | sed -e 's/check-//'`; \
  684.     if [ -f ./$${dir}/Makefile ] ; then \
  685.       rootme=`pwd`; export rootme; \
  686.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  687.       (cd $${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) check); \
  688.     else \
  689.       true; \
  690.     fi
  691.  
  692. # This rule is used to install the modules which use
  693. # TARGET_FLAGS_TO_PASS.  To build a target install-X means to cd to X
  694. # and make install.
  695. .PHONY: $(INSTALL_TARGET_MODULES)
  696. $(INSTALL_TARGET_MODULES): install-dirs
  697.     @dir=`echo $@ | sed -e 's/install-//'`; \
  698.     if [ -f ./$${dir}/Makefile ] ; then \
  699.       rootme=`pwd`; export rootme; \
  700.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  701.       (cd $${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
  702.     else \
  703.       true; \
  704.     fi
  705.  
  706. # This rule is used to build the modules which use X11_FLAGS_TO_PASS.
  707. # To build a target all-X means to cd to X and make all.
  708. .PHONY: $(ALL_X11_MODULES)
  709. $(ALL_X11_MODULES):
  710.     @dir=`echo $@ | sed -e 's/all-//'`; \
  711.     if [ -f ./$${dir}/Makefile ] ; then \
  712.       rootme=`pwd`; export rootme; \
  713.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  714.       (cd $${dir}; \
  715.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
  716.     else \
  717.       true; \
  718.     fi
  719.  
  720. # This rule is used to check the modules which use X11_FLAGS_TO_PASS.
  721. # To build a target check-X means to cd to X and make all.
  722. .PHONY: $(CHECK_X11_MODULES)
  723. $(CHECK_X11_MODULES):
  724.     @dir=`echo $@ | sed -e 's/check-//'`; \
  725.     if [ -f ./$${dir}/Makefile ] ; then \
  726.       rootme=`pwd`; export rootme; \
  727.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  728.       (cd $${dir}; \
  729.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
  730.     else \
  731.       true; \
  732.     fi
  733.  
  734. # This rule is used to install the modules which use X11_FLAGS_TO_PASS.
  735. # To build a target install-X means to cd to X and make install.
  736. .PHONY: $(INSTALL_X11_MODULES)
  737. $(INSTALL_X11_MODULES):
  738.     @dir=`echo $@ | sed -e 's/install-//'`; \
  739.     if [ -f ./$${dir}/Makefile ] ; then \
  740.       rootme=`pwd`; export rootme; \
  741.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  742.       (cd $${dir}; \
  743.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
  744.     else \
  745.       true; \
  746.     fi
  747.  
  748. # gcc is the only module which uses GCC_FLAGS_TO_PASS.
  749. .PHONY: all-gcc
  750. all-gcc:
  751.     @if [ -f ./gcc/Makefile ] ; then \
  752.       rootme=`pwd`; export rootme; \
  753.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  754.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
  755.     else \
  756.       true; \
  757.     fi
  758.  
  759. .PHONY: install-gcc
  760. install-gcc:
  761.     @if [ -f ./gcc/Makefile ] ; then \
  762.       rootme=`pwd`; export rootme; \
  763.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  764.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  765.     else \
  766.       true; \
  767.     fi
  768.  
  769. # This is a list of inter-dependencies among modules.
  770. all-autoconf:
  771. all-bfd:
  772. all-binutils: all-libiberty all-opcodes all-bfd all-flex
  773. all-byacc:
  774. all-cvs:
  775. all-dejagnu:
  776. all-diff: all-libiberty
  777. all-emacs:
  778. all-etc:
  779. all-expect: all-tcl
  780. all-fileutils:
  781. all-find:
  782. all-flex: all-libiberty all-byacc
  783. all-gas: all-libiberty all-opcodes all-bfd
  784. all-gawk:
  785. all-gcc: all-libiberty all-byacc all-binutils all-gas
  786. all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-glob all-byacc
  787. all-glob:
  788. all-gprof: all-libiberty all-bfd
  789. all-grep:
  790. all-gzip: all-libiberty
  791. all-hello: all-libiberty
  792. all-indent:
  793. all-ispell: all-emacs
  794. all-ld: all-libiberty all-bfd all-byacc all-flex
  795. all-libg++: all-gas all-ld all-gcc all-xiberty all-newlib
  796. all-libiberty:
  797. all-m4: all-libiberty
  798. all-make: all-libiberty
  799. all-mmalloc:
  800. all-newlib: all-binutils all-gas all-gcc
  801. all-opcodes:
  802. all-patch:
  803. all-gnats:
  804. all-rcs:
  805. all-readline:
  806. all-recode: all-libiberty
  807. all-sed:
  808. all-send-pr:
  809. all-shellutils:
  810. all-sim: all-libiberty all-bfd
  811. all-tar: all-libiberty
  812. all-tcl:
  813. all-tclX: all-tcl all-tk
  814. all-tk: all-tcl
  815. all-texinfo: all-libiberty
  816. all-textutils:
  817. all-tgas: all-libiberty all-bfd
  818. all-time:
  819. all-wdiff:
  820. all-uudecode: all-libiberty
  821. all-xiberty: all-gcc all-newlib
  822.  
  823. ### other supporting targets
  824.  
  825. MAKEDIRS= \
  826.     $(prefix) \
  827.     $(exec_prefix) \
  828.     $(tooldir)
  829.  
  830. .PHONY: install-dirs
  831. install-dirs:
  832.     @for i in $(MAKEDIRS) ; do \
  833.         echo Making $$i... ; \
  834.         parent=`echo $$i|sed -e 's@/[^/]*$$@@'`; \
  835.         if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi ; \
  836.         if [ ! -d $$i ] ; then \
  837.             if mkdir $$i ; then \
  838.                 true ; \
  839.             else \
  840.                 exit 1 ; \
  841.             fi ; \
  842.         else \
  843.             true ; \
  844.         fi ; \
  845.     done
  846.  
  847. .PHONY: install-info-dirs 
  848. install-info-dirs:
  849.     if [ -d $(prefix) ] ; then true ; else mkdir $(prefix) ; fi
  850.     -parent=`echo $(infodir)|sed -e 's@/[^/]*$$@@'`; \
  851.     if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
  852.     -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi
  853.  
  854. dir.info: do-install-info
  855.     if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
  856.       $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
  857.       mv -f dir.info.new dir.info ; \
  858.     else true ; \
  859.     fi
  860.  
  861. dist:
  862.     @echo "Building a full distribution of this tree isn't done"
  863.     @echo "via 'make dist'.  Check out the etc/ subdirectory" 
  864.  
  865. etags tags: TAGS
  866.  
  867. TAGS:
  868.     etags `$(MAKE) ls`
  869.  
  870. ls:
  871.     @echo Makefile
  872.     @for i in $(SUBDIRS); \
  873.     do \
  874.         (cd $$i; \
  875.             pwd=`pwd`; \
  876.             wd=`basename $$pwd`; \
  877.             for j in `$(MAKE) ls`; \
  878.             do \
  879.                 echo $$wd/$$j; \
  880.             done) \
  881.     done
  882.  
  883. # with the gnu make, this is done automatically.
  884.  
  885. Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
  886.     $(SHELL) ./config.status
  887.  
  888. #
  889. # Build GDB distributions that contain BFD, Include, Libiberty, Readline, etc
  890.  
  891. DEVO_SUPPORT= README Makefile.in configure configure.in \
  892.     config.guess config.sub config move-if-change
  893. ETC_SUPPORT= Makefile.in cfg-paper.texi configure.in configure.man \
  894.     configure.texi
  895. GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline glob sim
  896. GDB_SUPPORT_FILES= $(GDB_SUPPORT_DIRS)
  897.  
  898. .PHONY: setup-dirs-gdb gdb.tar.Z make-gdb.tar.Z
  899. setup-dirs-gdb:
  900.     ./configure sun4
  901.     $(MAKE) clean
  902.     ./configure -rm sun4
  903.     chmod og=u `find etc $(DEVO_SUPPORT) $(GDB_SUPPORT_FILES) -print`
  904.  
  905. gdb.tar.Z: setup-dirs-gdb
  906.     (cd gdb; $(MAKE) -f Makefile.in make-proto-gdb.dir BISON="byacc")
  907.     $(MAKE) $(MFLAGS) -f Makefile.in make-gdb.tar.Z
  908.  
  909. make-gdb.tar.Z: $(DEVO_SUPPORT) $(GDB_SUPPORT_DIRS) gdb texinfo/texinfo.tex
  910.     rm -rf proto-toplev; mkdir proto-toplev
  911.     ln -s ../gdb/proto-gdb.dir proto-toplev/gdb
  912.     (cd proto-toplev; for i in $(DEVO_SUPPORT) $(GDB_SUPPORT_DIRS); do \
  913.         ln -s ../$$i . ; \
  914.     done)
  915.     mkdir proto-toplev/etc
  916.     (cd proto-toplev/etc; for i in $(ETC_SUPPORT); do \
  917.         ln -s ../../etc/$$i . ; \
  918.     done)
  919.     # Put only one copy (four hard links) of COPYING in the tar file.
  920.     rm                          proto-toplev/bfd/COPYING
  921.     ln proto-toplev/gdb/COPYING proto-toplev/bfd/COPYING
  922.     rm                          proto-toplev/include/COPYING
  923.     ln proto-toplev/gdb/COPYING proto-toplev/include/COPYING
  924.     rm                          proto-toplev/readline/COPYING
  925.     ln proto-toplev/gdb/COPYING proto-toplev/readline/COPYING
  926.  
  927.     # Take out texinfo and glob from configurable dirs
  928.     rm proto-toplev/configure.in
  929.     sed -e '/^host_tools=/s/texinfo //' \
  930.         -e '/^host_libs=/s/glob //' \
  931.         <configure.in >proto-toplev/configure.in
  932.  
  933.     # Take out texinfo from a few places; make simple BISON=bison line.
  934.     rm proto-toplev/Makefile.in
  935.     sed -e '/^all\.normal: /s/\all-texinfo //' \
  936.         -e '/^    install-texinfo /d' \
  937.         -e '/^BISON = /,/^$$/d' \
  938.         -e '/^# BISON:/s/.*/BISON = bison -y/' \
  939.     <Makefile.in >proto-toplev/Makefile.in
  940.  
  941.     mkdir proto-toplev/texinfo
  942.     ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
  943.     ln -s ../../texinfo/tex3patch   proto-toplev/texinfo/
  944.     chmod og=u `find proto-toplev -print`
  945.     (VER=`sed <gdb/Makefile.in -n 's/VERSION = //p'`; \
  946.         ln -s proto-toplev gdb-$$VER; \
  947.         echo "==> Making gdb-$$VER.tar.Z"; \
  948.         tar cfh - gdb-$$VER | $(COMPRESS) -v >gdb-$$VER.tar.Z; \
  949.         echo "==> Making gdb-$$VER.tar.z"; \
  950.         tar cfh - gdb-$$VER | $(GZIP) -v -9 >gdb-$$VER.tar.z)
  951.  
  952. # When you use `make setup-dirs' or `make taz' you should always redefine
  953. # this macro.
  954. SUPPORT_FILES = list-of-support-files-for-tool-in-question
  955. # Directories that might want `make proto-dir' run.
  956. PROTODIRS= gdb
  957.  
  958. .PHONY: setup-dirs taz
  959. setup-dirs:
  960.     ./configure sun4
  961.     $(MAKE) clean
  962.     ./configure -rm sun4
  963.     chmod og=u `find etc $(DEVO_SUPPORT) $(SUPPORT_FILES) -print`
  964.     for d in .. $(PROTODIRS) ; do \
  965.       if [ $$d != ".." ] && [ -d $$d ]; then \
  966.         (cd $$d ; $(MAKE) -f Makefile.in proto-dir) ; \
  967.       else true ; fi ; \
  968.     done
  969.  
  970. taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
  971.     rm -rf proto-toplev; mkdir proto-toplev
  972.     for d in .. $(PROTODIRS) ; do \
  973.       if [ $$d != .. ]; then \
  974.         if [ -d $$d ]; then \
  975.           ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \
  976.         else true ; fi ; \
  977.       else true ; fi ; \
  978.     done
  979.     (cd proto-toplev; for i in $(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES); do \
  980.         if [ ! -d $$i ]; then ln -s ../$$i . ; else true ; fi ; \
  981.     done)
  982.     mkdir proto-toplev/etc
  983.     (cd proto-toplev/etc; for i in $(ETC_SUPPORT); do \
  984.         ln -s ../../etc/$$i . ; \
  985.     done)
  986.     # Put only one copy (four hard links) of COPYING in the tar file.
  987.     ## FIX ME LATER
  988.  
  989.     # Take out texinfo and glob from configurable dirs
  990.     rm proto-toplev/configure.in
  991.     sed -e '/^host_tools=/s/texinfo //' \
  992.         -e '/^host_libs=/s/glob //' \
  993.         <configure.in >proto-toplev/configure.in
  994.  
  995.     # Take out texinfo from a few places; make simple BISON=bison line.
  996.     rm proto-toplev/Makefile.in
  997.     sed -e '/^all\.normal: /s/\all-texinfo //' \
  998.         -e '/^    install-texinfo /d' \
  999.         -e '/^BISON = /,/^$$/d' \
  1000.         -e '/^# BISON:/s/.*/BISON = bison -y/' \
  1001.     <Makefile.in >proto-toplev/Makefile.in
  1002.  
  1003.     mkdir proto-toplev/texinfo
  1004.     ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
  1005.     ln -s ../../texinfo/tex3patch   proto-toplev/texinfo/
  1006.     chmod og=u `find proto-toplev -print`
  1007.     (VER=`sed <$(TOOL)/Makefile.in -n 's/VERSION *= *//p'`; \
  1008.         echo "==> Making $(TOOL)-$$VER.tar.z"; \
  1009.         ln -s proto-toplev $(TOOL)-$$VER; \
  1010.         tar cfh - $(TOOL)-$$VER \
  1011.         | $(GZIP) -v >$(TOOL)-$$VER.tar.z)
  1012.  
  1013. GAS_SUPPORT_DIRS= bfd include libiberty opcodes
  1014.  
  1015. .PHONY: gas.tar.z
  1016. gas.tar.z: $(DEVO_SUPPORT) $(GAS_SUPPORT_DIRS) gas texinfo/texinfo.tex
  1017.     $(MAKE) -f Makefile.in setup-dirs SUPPORT_FILES="$(GAS_SUPPORT_DIRS)"
  1018.     $(MAKE) -f Makefile.in taz SUPPORT_FILES="$(GAS_SUPPORT_DIRS)" TOOL=gas
  1019.  
  1020.  
  1021. .NOEXPORT:
  1022. MAKEOVERRIDES=
  1023.  
  1024.  
  1025. # end of Makefile.in
  1026.